The invention pertains to digital data processing and, more particularly, to methods and apparatus for accessing and/or delivering data in a client-server environment. The invention has application in improving file and data access over local area networks, the Internet, and other networks.
Traditional file servers or network attached storage (NAS) devices support access requests received from networked client devices (e.g., PCs, workstations and the like) using network file system capabilities built in to the server operating system—which may be, for example, Linux or Microsoft Windows Server. Typically, these file systems, e.g. SMB/CIFS, allow the clients to access files and directories maintained on the server as if they were local to the requesting clients themselves—albeit, the transfers take place via the network and, as a result, are traditionally much slower.
Thus, for example, file transfers from a NAS to a client device may be as slow as 10-50 Mbyte/s, even if Gigabit-Ethernet—which has a theoretical peak bandwidth of ˜110 Mbyte/s—is used as the network. The discrepancy is more pronounced when actual transfer speeds of 10-50 Mbyte/s are measured against the read performance delivered by fast RAID systems of the type often attached to high-performance file servers. Those RAID systems are capable of delivering at rates of 200-300 MByte/s, or even higher for sufficiently large sequential reads.
Data input/output (I/O) performance is a critical component in data intensive applications such as, by way of non-limiting example, signal processing applications, visualization applications, and the like.
An object of the invention is to provide improved methods and systems for digital data processing and, more particularly, by way of non-limiting example, for accessing and/or delivering data in a client-server environment.
A related object of the invention is to provide such methods and systems as improve the speed of data transfer between file servers and client devices.
A still further related object of the invention is to provide such methods and systems as reduce the gap between high RAID performance and the performance usable at the application level, e.g., when a network is disposed in between.